ããããå¶åŸ¡ã«ãããåå®å šæ§ã®éèŠãªåœ¹å²ãæ¢æ±ããäžçäžã®å€æ§ãªããããã·ã¹ãã ã®ä¿¡é Œæ§ãšäºæž¬å¯èœãªåäœãä¿èšŒããŸãã å®è·µçãªå®è£ ãšã°ããŒãã«ãªãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠåŠã³ãŸãã
åå®å šãªãããã£ã¯ã¹ïŒããããå¶åŸ¡ã¿ã€ãã®å®è£
ãããã£ã¯ã¹ã¯ãè£œé æ¥ããã«ã¹ã±ã¢ãããç©æµãæ¢æ»ãŸã§ãäžçäžã®ç£æ¥ãæ¥éã«å€é©ããŠããŸãã ãããããããæŽç·Žãããç§ãã¡ã®æ¥åžžç掻ã«çµ±åãããã«ã€ããŠããã®å®å šæ§ãšä¿¡é Œæ§ã確ä¿ããããšãæãéèŠã«ãªããŸãã ãããéæããããã®éèŠãªåŽé¢ã®1ã€ã¯ãåå®å šãªããã°ã©ãã³ã°ãã©ã¯ãã£ã¹ãç¹ã«ããããå¶åŸ¡ã¿ã€ãã®å®è£ ã«ãããæ¡çšã§ãã ãã®ããã°æçš¿ã§ã¯ããããã£ã¯ã¹ã«ãããåå®å šæ§ã®éèŠæ§ãæãäžããå®è·µçãªå®è£ æŠç¥ãæ¢æ±ããå ç¢ã§äºæž¬å¯èœãªããããã·ã¹ãã ãæ§ç¯ããããã®ã°ããŒãã«ãªãã¹ããã©ã¯ãã£ã¹ã玹ä»ããŸãã
ããããå¶åŸ¡ã«ãããåå®å šæ§ã®éèŠæ§
åå®å šæ§ã¯ãæ¬è³ªçã«ãåãšã©ãŒãé²ãããã°ã©ãã³ã°èšèªã®ç¹æ§ã§ãã åãšã©ãŒã¯ãããã°ã©ã ã宣èšãããåãšççŸããæ¹æ³ã§å€ã䜿çšããããšããå Žåã«çºçããŸãã ããšãã°ãæååãæ°å€ã«è¿œå ããããšããããšã§ãã åå®å šãªã·ã¹ãã ã§ã¯ããã®ãããªãšã©ãŒã¯ã³ã³ãã€ã«äžïŒéçåãã§ãã¯ïŒãŸãã¯å®è¡æïŒåçåãã§ãã¯ïŒã«æ€åºãããäºæããªãåäœãæœåšçãªå±éºãé²ããŸãã ãããã£ã¯ã¹ã®ã³ã³ããã¹ãã§ã¯ãåãšã©ãŒã®çµæã¯ãããããã®èª€ã£ãåãããæ©åšã®æå·ãããã«ã¯äººãžã®è² å·ãŸã§ãæ·±å»ã«ãªãå¯èœæ§ããããŸãã ãããã£ãŠãåå®å šæ§ã¯åãªãã³ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã§ã¯ãããŸããã å®å šã§ä¿¡é Œæ§ã®é«ããããããæ§ç¯ããããã®åºæ¬çãªèŠä»¶ã§ãã
åå®å šæ§ã®å©ç¹
- å®å šæ§ã®åäžïŒåå®å šæ§ã¯ãäºæž¬äžå¯èœãªããããã®åäœã«ã€ãªããå¯èœæ§ã®ããå®è¡æãšã©ãŒã®ãªã¹ã¯ãå€§å¹ ã«è»œæžããäºæ ãæªæãæœåšçã«é²ããŸãã ãããããå£ãããããªããžã§ã¯ããæŸãããã«ããã°ã©ã ãããŠããã·ããªãªãèããŠã¿ãŸãããã ã³ãŒãã誀ã£ãŠé床ã®åãå ããããšããå ŽåïŒåã®äžäžèŽãåå ïŒããªããžã§ã¯ããæå·ããããããããã®ã°ãªãããŒã誀åäœãããããå¯èœæ§ããããŸãã
- ä¿¡é Œæ§ã®åäžïŒéçºããã»ã¹ã®æ©ã段éã§ãšã©ãŒãæ€åºããããšã«ãããåå®å šæ§ã¯ããä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ã«è²¢ç®ããŸãã ããã¯ããããããèªåŸçã«ããŸã人éã®çµ¶ãéãªãç£ç£ãªãã«åäœããã¢ããªã±ãŒã·ã§ã³ã§ã¯ç¹ã«éèŠã§ãã
- ä¿å®æ§ã®åäžïŒåå®å šãªã³ãŒãã¯ãå€ãã®å Žåãçè§£ã倿Žãããã³ä¿å®ã容æã§ãã æç€ºçãªå宣èšã¯ããã¥ã¡ã³ããšããŠæ©èœããéçºè ãã³ãŒãã«ã€ããŠæšè«ããæ°ãããšã©ãŒãçºçãããããšãªã倿Žãå ããããšã容æã«ãªããŸãã
- ãããã°ã®é«éåïŒåãã§ãã¯ã¯ã³ã³ãã€ã«äžã«ãšã©ãŒãç¹å®ããã®ã«åœ¹ç«ã¡ããããã°ã«è²»ããæéãå€§å¹ ã«ççž®ããŸãã ããã¯ãå ç¢ãªåã·ã¹ãã ã®ãªãèšèªãšã¯å¯Ÿç §çã§ãããšã©ãŒã¯å®è¡æã«ã®ã¿è¡šé¢åãã远跡ãå°é£ã«ãªãå¯èœæ§ããããŸãã
- éçºã³ã¹ãã®åæžïŒåå®å šãªããã°ã©ãã³ã°ã§ã¯ãæç€ºçãªå宣èšãå¿ èŠãªãããåæéçºãã§ãŒãºããããã«é·ããªãå¯èœæ§ããããŸããããããã°ããã°ã®ä¿®æ£ãããã³ã³ãŒãã®æžãæãã«è²»ããæéãæå°éã«æããããšã§ãæçµçã«ã¯å šäœçãªéçºã³ã¹ããåæžã§ããŸãã
ããããå¶åŸ¡ã¿ã€ãã®å®è£ ïŒå®è·µçãªã¬ã€ã
åå®å šãªããããå¶åŸ¡ãå®è£ ããã«ã¯ãããã°ã©ãã³ã°èšèªãããããã®ããŒããŠã§ã¢ããã³ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ãããã³ãããããå®è¡ããç¹å®ã®å¶åŸ¡ã¿ã¹ã¯ãæ éã«æ€èšããå¿ èŠããããŸãã ã¹ããããã€ã¹ãããã®ã¢ãããŒãã¯æ¬¡ã®ãšããã§ãã
1. åå®å šãªããã°ã©ãã³ã°èšèªãéžæãã
ããã°ã©ãã³ã°èšèªã®éžæã¯åºæ¬ã§ãã äžéšã®èšèªã¯ãä»ã®èšèªãããæ¬è³ªçã«åå®å šã§ãã RustãJavaãCïŒãHaskellãªã©ã®èšèªã¯ã匷åãªåã·ã¹ãã ãåããŠãããããããå·¥åŠã®éçºã«é©ããŠããŸãã ææ°ã®æ©èœãšåãã³ãã®é©åãªäœ¿çšãããã³éçåæããŒã«ãåããC ++ããé«ã¬ãã«ã®åå®å šæ§ãå®çŸã§ããŸãããããã«ã¯éçºè ããã®ããå€ãã®èŠåŸãšå°éç¥èãå¿ èŠã§ãã
äŸïŒå庫ã§åäœãããããããèããŠã¿ãŸãããã Rustã䜿çšãããšãxãyãz座æšãšåãïŒã¯ã©ãŒã¿ããªã³ãŸãã¯ãªã€ã©ãŒè§ãªã©ïŒã®ãã£ãŒã«ããæã€ãCartesianPoseãã®åãå®çŸ©ã§ããŸãããããã¯ãã¹ãŠæµ®åå°æ°ç¹æ°ãšããŠæç€ºçã«åæå®ãããŠããŸãã ã³ã³ãã€ã©ã¯ã倿ãªã©ããã®ããŒãºã«å¯Ÿããæäœãäºææ§ã®ããåã䜿çšããŠå®è¡ãããããã«ããæååã座æšå€ã«è¿œå ããããšãããªã©ã®ãšã©ãŒãé²ããŸãã
2. æç¢ºãªããŒã¿åãå®çŸ©ãã
ãžã§ã€ã³ãè§åºŠããã«ã«ãå§¿å¢ãé床ãåãªã©ãããããåºæã®æŠå¿µã衚ãã«ã¹ã¿ã ããŒã¿åãå®çŸ©ããŸãã ããã«ãããã³ãŒãã®æçããåäžããäžè¬çãªãšã©ãŒãé²ããŸãã åæåãšæ§é äœã䜿çšããŠããããããååšã§ããããŸããŸãªç¶æ ãšæ§æã衚ããŸãã ãããã®ã¿ã€ããæ éã«èšèšããŠãããããã®ç©ççãªå¶éãšæ©èœãåæ ããŸãã
äŸïŒJavaãŸãã¯CïŒã§ã¯ãåãžã§ã€ã³ãã®è§åºŠã衚ããã£ãŒã«ãïŒããšãã°ã`double joint1Angle`ã`double joint2Angle`ãªã©ïŒãæã€`JointAngles`ãšããååã®ã¯ã©ã¹ãäœæã§ããŸãã æ¬¡ã«ããã®ã¯ã©ã¹å ã§ããžã§ã€ã³ãè§åºŠããã«ã«ã座æšã«å€æãããããžã§ã€ã³ãå¶éã確èªããããããªã©ã®æäœãå®è¡ããã¡ãœãããå®çŸ©ã§ããŸãã åæåã¯ã`Idle`ã`Moving`ã`HoldingObject`ãªã©ã®ããããã®ç¶æ ã衚ãããšãã§ããå¯èªæ§ãåäžããç¶æ 管çã®ãšã©ãŒã®å¯èœæ§ãäœæžãããŸãã
3. éçåæããŒã«ãå©çšãã
éçåæããŒã«ã䜿çšããŠãæœåšçãªåãšã©ãŒããã®ä»ã®åé¡ãèªåçã«ã³ãŒãããã§ãã¯ããŸãã ãããã®ããŒã«ã¯ãã³ãŒããå®è¡ããã«ã³ãŒããåæããéçºããã»ã¹äžã«ãã£ãŒãããã¯ãæäŸããŸãã çµ±åéçºç°å¢ïŒIDEïŒã«ã¯ãå€ãã®å Žåãçµã¿èŸŒã¿ã®éçåææ©èœããããŸãã SonarQubeãClang Static AnalyzerïŒC / C ++ã®å ŽåïŒãFindBugsïŒJavaã®å ŽåïŒãªã©ã®ããŒã«ã¯ãåãšã©ãŒãã¡ã¢ãªãªãŒã¯ããã®ä»ã®æœåšçãªåé¡ãç¹å®ã§ããŸãã
äŸïŒéçåæããŒã«ã䜿çšãããšããã¹ãŠã®å€æ°ãæ£ããåæåããŠããããšãããã³èšç®ã§äœ¿çšãããããŒã¿åãäºææ§ãããããšã確èªããŠãäºæããªãåäœãé²ãããšãã§ããŸãã ROSïŒãããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒã䜿çšããŠããå Žåã¯ããããã®ããŒã«ã䜿çšããŠãããããããŒãéã®éä¿¡ã«äœ¿çšãããã¡ãã»ãŒãžã¿ã€ãã«äžè²«æ§ãããããšã確èªããããšãã§ããŸãã
4. ããããå¶åŸ¡ã³ãã³ãã«åŒ·åãªåæå®ãå®è£ ãã
ç¹å®ã®ããŒãºã«ç§»åããããã°ãªãããŒãå¶åŸ¡ããããããªã©ãããããã«ã³ãã³ããéä¿¡ãããšãã¯ã匷ãåä»ããããã¡ãã»ãŒãžãŸãã¯é¢æ°ãã©ã¡ãŒã¿ãŒã䜿çšããŸãã ããã«ããããããããæå¹ãªã³ãã³ãã®ã¿ãåä¿¡ããããšãä¿èšŒãããŸãã ã¹ããã2ã®ããŒã¿åã䜿çšããŠãã³ãã³ãã®æ§é ãå®çŸ©ããŸãã
äŸïŒROSã§ã¯ãããããã³ãã³ãã®ã«ã¹ã¿ã ã¡ãã»ãŒãžã¿ã€ããå®çŸ©ããŸãã ããšãã°ã`MoveToPose`ã¡ãã»ãŒãžã«ã¯`CartesianPose`ãã£ãŒã«ããå«ãŸãã`GripperCommand`ã¡ãã»ãŒãžã«ã¯ç®çã®ã°ãªãããŒç¶æ ã瀺ã`enum`ãå«ãŸããå ŽåããããŸãïŒããšãã°ã`OPEN`ã`CLOSE`ïŒã ROSã¡ãã»ãŒãžã·ã¹ãã ã¯ãéä¿¡è ãšåä¿¡è ãäºææ§ã®ããã¡ãã»ãŒãžã¿ã€ãã䜿çšããŠããããšãä¿èšŒããéä¿¡ãšã©ãŒãé²ããŸãã
5. ãšã©ãŒåŠçãšæ€èšŒ
å ç¢ãªãšã©ãŒåŠçãšå ¥åæ€èšŒãå®è£ ããŸãã ã»ã³ãµãŒããŒã¿ãã³ãã³ããã©ã¡ãŒã¿ãããã³ãããããåä¿¡ãããã®ä»ã®å ¥åã®æå¹æ§ã確èªããŸãã ãšã©ãŒãæ€åºãããå Žåã¯ããšã©ãŒããã°ã«èšé²ããïŒå¿ èŠã«å¿ããŠïŒããããã忢ãããŠãŒã¶ãŒã«éç¥ããããšã«ãããé©åã«åŠçããŸãã ããã°ã©ãã³ã°èšèªã§æäŸãããŠããäŸå€åŠçã¡ã«ããºã ã䜿çšããŠãæœåšçãªãšã©ãŒã管çãããããããã¯ã©ãã·ã¥ããã®ãé²ããŸãã
äŸïŒãããããã¯ãŒã¯ã¹ããŒã¹ã®å€ã«ããã¿ãŒã²ããããŒãºãåä¿¡ããå Žåãã³ãŒãã¯ãã®ãšã©ãŒãæ€åºãããšã©ãŒã¡ãã»ãŒãžããã°ã«èšé²ããããããã®åãã忢ããå¯èœæ§ããããŸãã ãããããè¡çªãæ€åºããå Žåãããã«åäœã忢ããå¿ èŠããããŸãã æ€èšŒæ®µéã¯ãäºæããªãå ¥åå€ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
6. ãã¹ããšã·ãã¥ã¬ãŒã·ã§ã³
ç©çããããã«ãããã€ããåã«ãã·ãã¥ã¬ãŒã·ã§ã³ã§ããããå¶åŸ¡ã³ãŒãã培åºçã«ãã¹ãããŸãã GazeboãV-REPãªã©ã®ã·ãã¥ã¬ãŒã·ã§ã³ç°å¢ã§ã¯ãå®å šã§å¶åŸ¡ãããç°å¢ã§ã³ãŒãããã¹ãã§ããŸãã ãŠããããã¹ããçµ±åãã¹ããããã³ã·ã¹ãã ãã¹ãã䜿çšããŠãããããå¶åŸ¡ã¿ã€ããæ£ããæ©èœããŠããããšãããã³ãããããäºæãããšããã«åäœããŠããããšã確èªããŸãã ãã¡ãºãã¹ããªã©ã®ææ³ã掻çšããŠããšããžã±ãŒã¹ãšæœåšçãªè匱æ§ãç¹å®ããŸãã
äŸïŒæ°ããããããã¢ãŒã·ã§ã³ãã©ã³ããããã€ããåã«ãã·ãã¥ã¬ãŒã·ã§ã³ã§å®è¡ãããããããè¡çªãäºæããªãåäœãªãã«ç®çã®ã¿ãŒã²ããããŒãºã«å°éããããšã確èªããŸãã ãŠããããã¹ãã䜿çšããŠãééååŠã®èšç®ãªã©ãå¶åŸ¡ã·ã¹ãã ã®åã ã®ã³ã³ããŒãã³ãããã¹ãããŸãã ãŸããç°ãªãã»ã³ãµãŒã®èªã¿åãå€ïŒããšãã°ãäžæ£ç¢ºãªãšã³ã³ãŒããŒã®èªã¿åãå€ïŒãã·ãã¥ã¬ãŒããããã¹ããçæããŠãã³ãŒãããã®ç¶æ³ãå®å šã«åŠçããããšã確èªããŸãã
åå®å šãªããããå¶åŸ¡ã®ããã®ã°ããŒãã«ãã¹ããã©ã¯ãã£ã¹
åå®å šãªããããå¶åŸ¡ã广çã«å®è£ ããã«ã¯ãããŸããŸãªæ¥çããã³å°ççå°åã«é©çšã§ããç¹å®ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãå¿ èŠããããŸãã
1. ã³ãŒãã£ã³ã°æšæºãšã¬ã€ãã©ã€ã³ã«åŸã
ããããå·¥åŠãããžã§ã¯ãã®æç¢ºãªã³ãŒãã£ã³ã°æšæºãšã¬ã€ãã©ã€ã³ã確ç«ããŸãã ãããã®æšæºã¯ãã³ãŒãã¹ã¿ã€ã«ãåœåèŠåããšã©ãŒåŠçãããã³å䜿çšãã«ããŒããå¿ èŠããããŸãã ãããã®æšæºã«åŸãããšã§ãã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãåäžããéçºè ããããžã§ã¯ãã§å ±åäœæ¥ããããšã容æã«ãªããŸãã éžæããèšèªã«é¢é£ããã¹ã¿ã€ã«ã¬ã€ãïŒããšãã°ãPythonã®å Žåã¯PEP 8ãC ++ã®å Žåã¯Google C ++ã¹ã¿ã€ã«ã¬ã€ãïŒãæ¡çšããŸãã ã³ãŒãã¬ãã¥ãŒãšèªååããŒã«ãéããŠæšæºãé©çšããŸãã
äŸïŒäžè²«ãã圢åŒïŒããšãã°ãDoxygenïŒã䜿çšããŠãã¹ãŠã®ã³ãŒããææžåããããšãèŠæ±ããŸãã äžè²«ããåœåèŠåïŒããšãã°ãcamelCaseãŸãã¯snake_caseïŒã®äœ¿çšã匷å¶ããŸãã èªåã³ãŒããã©ãŒãããããŒã«ïŒããšãã°ãPythonã®å Žåã¯BlackïŒãå®è£ ããŠãã³ãŒããåžžã«äžè²«ããŠãã©ãŒããããããããã«ããŸãã
2. ãã¶ã€ã³ãã¿ãŒã³ãæ¡çšãã
確ç«ããããã¶ã€ã³ãã¿ãŒã³ãå©çšããŠãããããå¶åŸ¡ã³ãŒããæ§é åããŸãã ãªãã¶ãŒããŒãã¿ãŒã³ãã¹ããŒããã¿ãŒã³ããã¡ã¯ããªãã¿ãŒã³ãªã©ã®ãã¶ã€ã³ãã¿ãŒã³ã¯ãäžè¬çãªãœãããŠã§ã¢èšèšåé¡ã«å¯Ÿããåå©çšå¯èœãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã ãã¶ã€ã³ãã¿ãŒã³ã䜿çšãããšãããã¢ãžã¥ãŒã«åãããä¿å®å¯èœã§ãå ç¢ãªã³ãŒããäœæã§ããŸãã ããšãã°ãã¹ããŒããã¿ãŒã³ã䜿çšããŠãããããã®ããŸããŸãªç¶æ ïŒããšãã°ãã¢ã€ãã«ãç§»åãã°ãªããïŒãšãããã®éã®é·ç§»ã管çãããšãåç¶æ ã®ããžãã¯ãåé¢ããè€éãªã¹ããŒããã·ã³ã管çããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒãªãã¶ãŒããŒãã¿ãŒã³ã䜿çšããŠã»ã³ãµãŒããŒã¿ãåŠçããŸãã ããããã®ã»ã³ãµãŒã¯ãæ°ããããŒã¿ãå©çšå¯èœã«ãªã£ããšãã«ãç»é²ããããªãã¶ãŒããŒïŒããšãã°ãè¡çªæ€åºã·ã¹ãã ïŒã«ãéç¥ãã§ããŸãã ã¹ãã©ããžãŒãã¿ãŒã³ãæ¡çšãããšãã¿ã¹ã¯ã®ã¿ã€ãã«åºã¥ããŠããŸããŸãªç§»åæŠç¥ãå®çŸ©ããããšã§ãã³ãŒããããæè»ã«ããããšãã§ããŸãã
3. ã³ãŒãã¬ãã¥ãŒãå®è£ ãã
ã³ãŒãã¬ãã¥ãŒã宿œããŠãæœåšçãªãšã©ãŒãç¹å®ããã³ãŒãã®å質ãåäžãããããŒã ã¡ã³ããŒéã§ç¥èãå ±æããŸãã ã³ãŒãã¬ãã¥ãŒã§ã¯ãä»ã®éçºè ã«ãšã©ãŒãã¹ã¿ã€ã«ã®åé¡ãããã³ãã¹ããã©ã¯ãã£ã¹ã®éµå®ã«ã€ããŠã³ãŒãã確èªããŠããããŸãã ãã®ããã»ã¹ã«ãããæ¬çªç°å¢ã«ç§»è¡ãããã°ã®æ°ãå€§å¹ ã«åæžããå šäœçãªã³ãŒãå質ãåäžãããããšãã§ããŸãã ã³ãŒãã¬ãã¥ãŒã¯ãå ±åããããå·¥åŠãããžã§ã¯ããç¹ã«äžçã®ããŸããŸãªå°åã«ããéçºè ã®ããŒã ãé¢äžãããããžã§ã¯ãã«äžå¯æ¬ ã§ãã
äŸïŒGitãªã©ã®ããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããã³ãŒãã¬ãã¥ãŒããŒã«ïŒããšãã°ãGitHubãGitLabïŒãã¯ãŒã¯ãããŒã«çµ±åããŸãã ãã¹ãŠã®æ°ããã³ãŒãã倿Žãããã³ãã°ä¿®æ£ã«å¯ŸããŠã³ãŒãã¬ãã¥ãŒãå®è¡ãããããã«ããŸãã åŠç¿ãšç¥èã®å ±æãä¿é²ããããã«ãããŸããŸãªã¬ãã«ã®çµéšãæã€éçºè ãå«ããŸãã å質ãšã³ã©ãã¬ãŒã·ã§ã³ã®æåãè²ãããã«ããã¢ããŒãã¢ã®ã³ãŒãã¬ãã¥ãŒã奚å±ããŸãã
4. ããŒãžã§ã³ç®¡çãšç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çãããã€ã¡ã³ãïŒCI / CDïŒã䜿çšãã
ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒããšãã°ãGitïŒãå©çšããŠãã³ãŒããžã®å€æŽã远跡ãããããžã§ã¯ãã®ããŸããŸãªããŒãžã§ã³ã管çããŸãã CI / CDãã€ãã©ã€ã³ãå®è£ ããŠãã³ãŒãã®ãã«ãããã¹ããããã³ãããã€ãèªååããŸãã ããã«ããããã¹ãŠã®ã³ãŒã倿Žãããããã«ãããã€ãããåã«åŸ¹åºçã«ãã¹ãããããšã©ãŒãçºçãããªã¹ã¯ãæå°éã«æããããŸãã CI / CDãã€ãã©ã€ã³å ã®èªåãã¹ãã¯ããšã©ãŒããã°ããæ€åºããã®ã«åœ¹ç«ã¡ãŸãã CI / CDãã©ã¯ãã£ã¹ã¯ããããããœãããŠã§ã¢ã®æŽæ°ããã»ã¹ãåçåããåé¡ã®ããã³ãŒãã®ãããã€ã®å¯èœæ§ãæžãããŸãã
äŸïŒéçºè ãã³ãŒãããªããžããªã«ã³ããããããã³ã«ãCIã·ã¹ãã ïŒããšãã°ãJenkinsãGitLab CIïŒã¯ããŠããããã¹ããçµ±åãã¹ããããã³éçåæããŒã«ãèªåçã«å®è¡ããŸãã ãã¹ãã倱æããå ŽåãCIã·ã¹ãã ã¯éçºè ã«èŠåããã³ãŒããã¡ã€ã³ãã©ã³ãã«ããŒãžãããã®ãé²ããŸãã ãã¹ãŠã®ãã¹ãã«åæ Œãããšãã³ãŒãã¯èªåçã«ãã«ãããããããªããã¹ãã®ããã«ã¹ããŒãžã³ã°ç°å¢ã«ãããã€ãããŸãã ç£æ¥çšããããã®å Žåãããã¯è£œé ããã»ã¹äžã®å®å šã確ä¿ããããã«éåžžã«éèŠã«ãªãå¯èœæ§ããããŸãã
5. å®å šåºæºãšèŠå¶ãéµå®ãã
ããããå¶åŸ¡ã·ã¹ãã ãéçºããå Žåã¯ãæ¥çããã³å°åã«é¢é£ããå®å šåºæºããã³èŠå¶ãéµå®ããããšãéèŠã§ãã äŸãšããŠã¯ãISO 10218ïŒç£æ¥çšããããã®å®å šèŠä»¶ïŒããã³ååããããïŒã³ãããïŒã®é¢é£èŠæ ŒããããŸãã 黿°å®å šãé»ç£äž¡ç«æ§ïŒEMCïŒãããã³ãªã¹ã¯è©äŸ¡ã«é¢ãããã®ãå«ãããããžã§ã¯ãã«é©çšããããã¹ãŠã®å®å šåºæºãããçè§£ããŠãã ããã ãããã®èŠæ Œã§ã¯ãéåžžåæ¢ãã¿ã³ãå®å šã»ã³ãµãŒãé床ãšåã®å¶éãªã©ãç¹å®ã®å®å šæ©èœã矩åä»ããããŠããããšãå€ãããããã¯ããããå¶åŸ¡ã³ãŒãã«æ£ããå®è£ ããå¿ èŠããããŸãã
äŸïŒãã€ãã®è£œé æœèšã§äœ¿çšããã³ããããéçºããŠããå Žåã¯ãé¢é£ããæ¬§å·é£åã®èŠæ ŒãšçŸå°ã®èŠå¶ã«æºæ ããå¿ èŠããããŸãã ããã«ã¯ãåé·ãªå®å šã¡ã«ããºã ã®å®è£ ãšå®å šèªèšŒã®ååŸãå«ãŸããå ŽåããããŸãã ããŸããŸãªèŠä»¶ãšç¿æ £ã«å¯Ÿå¿ããŠã倿§ãªãŠãŒã¶ãŒããŒã¹ã«é©çšãããã°ããŒãã«ã¹ã¿ã³ããŒããæ€èšããŠãã ããã
6. ããã¥ã¡ã³ããšãã¬ãŒãã³ã°
ã³ãŒãã³ã¡ã³ããèšèšããã¥ã¡ã³ãããŠãŒã¶ãŒããã¥ã¢ã«ãªã©ãããããå¶åŸ¡ã³ãŒãã®å æ¬çãªããã¥ã¡ã³ããç¶æããŸãã ãããããæäœããéçºè ããªãã¬ãŒã¿ãŒãããã³ä¿å®æ åœè ã«ãã¬ãŒãã³ã°ãæäŸããŸãã ããã¥ã¡ã³ããæ£ç¢ºã§ææ°ã®ç¶æ ã«ä¿ãããé¢ä¿ãããã¹ãŠã®å©å®³é¢ä¿è ãã¢ã¯ã»ã¹ã§ããããšã確èªããŸãã 广çãªããã¥ã¡ã³ãã¯ãä»ã®äººãã³ãŒããçè§£ããŠä¿å®ã§ããããã«ããããã«äžå¯æ¬ ã§ããããã¬ãŒãã³ã°ã¯ããã¹ãŠã®äººããããããå®å šãã€å¹æçã«æäœã§ããããã«ããããã«äžå¯æ¬ ã§ãã ããã¥ã¡ã³ãã¯ãå¿ èŠã«å¿ããŠãã°ããŒãã«ãªèŠèŽè åãã«è€æ°ã®èšèªã§å©çšã§ããå¿ èŠããããŸãã ã°ããŒãã«ãªåŽååã«å¯Ÿå¿ããããã«ããã¬ãŒãã³ã°ããã°ã©ã ã§ããŸããŸãªã¹ãã«ã¬ãã«ã«å¯Ÿå¿ããŸãã
äŸïŒå颿°ãã¯ã©ã¹ãããã³å€æ°ã®ç®çã説æããã³ãŒãã³ã¡ã³ããå«ããŸãã ããããå¶åŸ¡ã·ã¹ãã ã®å šäœçãªã¢ãŒããã¯ãã£ã®æŠèŠã瀺ãèšèšããã¥ã¡ã³ããäœæããŸãã ããããã®æäœæ¹æ³ã«é¢ããã¹ããããã€ã¹ãããã®æé ãæäŸãããŠãŒã¶ãŒããã¥ã¢ã«ãäœæããŸãã ã³ãŒããšãã®å®å šæ©èœã«æ £ããããã«ãéçºè ãšãªãã¬ãŒã¿ãŒåãã®ãã¬ãŒãã³ã°ã»ãã·ã§ã³ãšã¯ãŒã¯ã·ã§ãããæäŸããŸãã
ã°ããŒãã«ãªåœ±é¿ãšå°æ¥ã®ãã¬ã³ã
åå®å šãªãããã£ã¯ã¹ã¯ãåã«ããè¯ãã³ãŒããäœæããããšã ãã§ã¯ãããŸããã äžçäžã®ãããã£ã¯ã¹ã®å°æ¥ã«å€§ããªåœ±é¿ãäžããŸãã ããããã倿§ãªåéã§ããæ®åããã«ã€ããŠãå®å šã§ä¿¡é Œæ§ãé«ããä¿å®ã容æãªããããã·ã¹ãã ã®å¿ èŠæ§ã¯ææ°é¢æ°çã«é«ãŸããŸãã ããã«ãããåå®å šãªããã°ã©ãã³ã°ãã©ã¯ãã£ã¹ã®æ¡çšãããã«é²ã¿ãã€ãããŒã·ã§ã³ã®æ°ããæ©äŒãçãŸããŸãã
æ°ããªã¢ããªã±ãŒã·ã§ã³
åå®å šãªãããã£ã¯ã¹ã¯ãå¹ åºãã¢ããªã±ãŒã·ã§ã³ã§éèŠã§ãã
- 補é ïŒäžçäžã®å·¥å Žã§ãããããã¯æº¶æ¥ãå¡è£ ãçµã¿ç«ãŠãªã©ã®ã¿ã¹ã¯ã«äœ¿çšãããŠããŸãã åå®å šæ§ã¯ããããã®æäœã®ç²ŸåºŠãšå®å šæ§ãä¿èšŒããŸãã
- ãã«ã¹ã±ã¢ïŒå€ç§çšãããããšæ£è ã±ã¢çšã®ã¢ã·ã¹ãããããã¯ãåå®å šãªããã°ã©ãã³ã°ãæäŸããå®å šæ§ãšä¿¡é Œæ§ã®æ©æµãåããŠããŸãã
- ããžã¹ãã£ã¯ã¹ïŒå庫ããã³é éã»ã³ã¿ãŒã®èªåèªå°è»äž¡ïŒAGVïŒããã³èªåŸç§»åããããïŒAMRïŒã¯ãå ç¢ã§å®å šãªå¶åŸ¡ã·ã¹ãã ã«äŸåããŠããŸãã
- 蟲æ¥ïŒåç©«ãæ€ãä»ããããã³äœç©ã®ç£èŠã«äœ¿çšãããããããã¯ãåå®å šãªã³ãŒãã«ããããã©ãŒãã³ã¹ã®åäžããæ©æµãåããŠããŸãã
- æ¢æ»ãšå®å®ïŒå±éºãªç°å¢ãŸãã¯å®å®ã§äœ¿çšãããããããã«ã¯ãä¿¡é Œæ§ãšå®å šæ§ã®é«ãå¶åŸ¡ã·ã¹ãã ãå¿ èŠã§ãã
å°æ¥ã®ãã¬ã³ã
- é«åºŠãªããã°ã©ãã³ã°èšèªïŒRustãªã©ã®æ°ããåå®å šãªããã°ã©ãã³ã°èšèªã®æ¡çšã¯ãåºæã®å®å šæ©èœãšããã©ãŒãã³ã¹ç¹æ§ã«ãããããããå·¥åŠã³ãã¥ããã£ã§æé·ãç¶ããã§ãããã
- åœ¢åŒææ³ïŒãœãããŠã§ã¢ã®æ£ãããæ€èšŒããããã«æ°åŠçææ³ã䜿çšããåœ¢åŒææ³ã¯ãããããå¶åŸ¡ã·ã¹ãã ã®å®å šæ§ãšä¿¡é Œæ§ãä¿èšŒããäžã§ãŸããŸãéèŠãªåœ¹å²ãæããã§ãããã
- AIãšæ©æ¢°åŠç¿ã®çµ±åïŒAIãšæ©æ¢°åŠç¿ã®ææ³ããããã£ã¯ã¹ã«ãŸããŸãçµ±åãããã«ã€ããŠãåå®å šæ§ã¯ããããã®ã·ã¹ãã ã®è€éãã管çããå®å šæ§ã確ä¿ããäžã§éåžžã«éèŠã«ãªããŸãã
- æšæºéçºïŒã°ããŒãã«ãªããããå·¥åŠã³ãã¥ããã£å šäœã®ã³ã©ãã¬ãŒã·ã§ã³ã®åŒ·åã¯ãããããå¶åŸ¡ã®ããã®æšæºåãããåå®å šãªã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã®éçºã«ã€ãªããã§ãããã
- 人éãšããããã®ã³ã©ãã¬ãŒã·ã§ã³ïŒãããããšäººéãããç·å¯ã«é£æºããã«ã€ããŠããããã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãå®å šã§çŽæçã§ããããšãä¿èšŒããããã«ãåå®å šãªã³ãŒãã£ã³ã°ãã©ã¯ãã£ã¹ãäžå¯æ¬ ã«ãªããŸãã
çµè«
åå®å šãªããããå¶åŸ¡ã®å®è£ ã¯ãããå®å šã§ä¿¡é Œæ§ãé«ããä¿å®ã容æãªããããã·ã¹ãã ãæ§ç¯ããããã®éèŠãªã¹ãããã§ãã åå®å šãªããã°ã©ãã³ã°èšèªãéžæããããŒã¿åãæ éã«å®çŸ©ããéçåæããŒã«ã䜿çšããå¶åŸ¡ã³ãã³ãã«åŒ·åãªåæå®ãå®è£ ããã°ããŒãã«ãªãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãéçºè ã¯ãšã©ãŒã®ãªã¹ã¯ãå€§å¹ ã«è»œæžããããããã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã ããããå·¥åŠã®åéãé²åãç¶ããã«ã€ããŠãåå®å šæ§ã®éèŠæ§ã¯é«ãŸãã°ããã§ãã åå®å šãªããã°ã©ãã³ã°ãã©ã¯ãã£ã¹ãæ¡çšããããšã§ããããããç§ãã¡ã®ç掻ã«ã·ãŒã ã¬ã¹ã«çµ±åãããäžçäžã§ã¿ã¹ã¯ãå®å šãã€å¹ççã«å®è¡ã§ããæªæ¥ã«è²¢ç®ã§ããŸãã
ãã®ããã°æçš¿ã§ã¯ãåå®å šãªãããã£ã¯ã¹ã®å æ¬çãªæŠèŠãæäŸãããã®éèŠæ§ãå®è·µçãªå®è£ æŠç¥ãããã³ã°ããŒãã«ãªãã¹ããã©ã¯ãã£ã¹ã匷調ããŠããŸãã ãããã®ã¬ã€ãã©ã€ã³ã«åŸãããšã§ãéçºè ã¯å®å šæ§ãé«ããä¿¡é Œæ§ãåäžãããäžçäžã®ããããå·¥åŠã®é²æ©ã«è²¢ç®ãããå ç¢ã§ä¿¡é Œæ§ã®é«ãããããå¶åŸ¡ã·ã¹ãã ãæ§ç¯ã§ããŸãã